/**
 * 验证是否为回文字符串，忽略非字母的其他标识，不考虑大小写
 * @param {string} s 
 */
var isPalindrome = function (s) {
    // 正则去除非数字/字母
    // \W用来匹配非单词字符，即[^a-zA-Z0-9]
    s = s.toLowerCase().replace(/[\W_]/g, "")

    if (s.length < 2) {
        return true
    }
    
    // 双指针
    let left = 0
    let right = s.length - 1
    while (left < right) {
        if (s[left] !== s[right]) {
            return false
        }
        left++
        right--
    }
    return true
}